﻿#define _CRT_SECURE_NO_WARNINGS 1
/*
1. 有1、2、3、4个数字，能组成多少个互不相同且无重复的三位数？分别是多少？*/
//#include <stdio.h>
//int main() {
//    int i, j, k;
//    printf("\n");
//    for (i = 1; i < 5; i++) {
//        for (j = 1; j < 5; j++) {
//            for (k = 1; k < 5; k++) {
//                if (i != j && j != k && i != k) {
//                    printf("%d,%d,%d", i, j, k);
//                    printf("\n");
//                }
//            }
//        }
//    };
//    return 0;
//}

/*
2. 一个整数，它加上100后是一个完全平方数，加上168又是一个完全平方数，请问该数是多少？

*/
//#include "math.h"
//#include "stdio.h"
//
//int main() {
//    long int i, a, b, x, y;
//    for (i = 1; i < 100000; i++) {
//        a = i + 100;
//        b = i + 168;
//        // 注意转换类型，否则报错
//        x = sqrt((float)a);
//        y = sqrt((float)b);
//        if (x * x == a && y * y == b) {
//            printf("\n%ld\n", i);
//        }
//    };
//    return 0;
//}

/*
3. 企业发放的奖金根据利润提成。利润低于或等于10万元时按10%提成；利润在10万到20万之间的部分按7.5%提成；利润在20万到40万之间的部分按5%提成；利润在40万到60万之间的部分按3%提成；利润在60万到100万之间的部分按1.5%提成；高于100万的部分按1%提成。
从键盘输入当月利润，求应发放奖金总数？
*/
//#include "stdio.h"
//
//int main() {
//    int bonus;
//    int bonus1 = 100000 * 0.1;
//    int bonus2 = bonus1 + (200000 - 100000) * 0.075;
//    int bonus4 = bonus2 + (400000 - 200000) * 0.05;
//    int bonus6 = bonus4 + (600000 - 400000) * 0.03;
//    int bonus10 = bonus6 + (1000000 - 600000) * 0.015;
//
//    long int i;
//    scanf("%ld", &i);
//    if (i <= 100000) {
//        bonus = i * 0.1;
//    }
//    else if (i <= 200000) {
//        bonus = bonus1 + (i - 100000) * 0.075;
//    }
//    else if (i <= 400000) {
//        bonus = bonus2 + (i - 200000) * 0.05;
//    }
//    else if (i <= 600000) {
//        bonus = bonus4 + (i - 400000) * 0.03;
//    }
//    else if (i <= 1000000) {
//        bonus = bonus6 + (i - 600000) * 0.015;
//    }
//    else {
//        bonus = bonus10 + (i - 1000000) * 0.01;
//    };
//    printf("bonus=%d", bonus);
//
//    return 0;
//}

/*
7. 输出国际象棋棋盘。*/
//#include "stdio.h"
//int main() {
//    int i, j;
//    for (i = 0; i < 8; i++) {
//        for (j = 0; j < 8; j++) {
//            if ((i + j) % 2 == 0) {
//                printf("❤️");
//            }
//            else {
//                printf(" ");
//            };
//        };
//        printf("\n");
//    }
//    return 0;
//}

 /*
 13. 输入一行字符，分别统计出其中英文字母、空格、数字和其它字符的个数。
 分析：利用while语句，条件为输入的字符不为'\n'。*/
#include "stdio.h"
int main() {
    char c;
    int letters = 0, space = 0, digit = 0, others = 0;
    printf("please input some words:\n");
    while ((c = getchar()) != '\n') {
        // 字符
        if (c >= 'a' && c <= 'z' || c >= 'A' && c <= 'Z') {
            letters++;
            // 空格
        }
        else if (c == 32) {
            space++;
            // 数字
        }
        else if (c >= '0' && c <= '9') {
            digit++;
            // 其它
        }
        else {
            others++;
        }
    };
    printf("char=%d space=%d,digit=%d,others=%d", letters, space, digit, others);
    return 0;
}
